package creational.pattern.singleton;

import org.junit.Assert;

/**
 * @Author yoyuan
 * @Description: 单例模式测试
 * @DateTime: 2023/1/8 14:50
 */
public class Test {
    public static void main(String[] args) {
        /**
         * 单例模式测试
         * 1、获取两个对象
         * 2、分别进行+1
         * 3、判断是否为同一个对象上的
         */
        IdGenerate obj1 = IdGenerate.getInstance();
        IdGenerate obj2 = IdGenerate.getInstance();
        obj1.incr();
        obj2.incr();

        // 因为obj1和obj2其实是同一个对象，所以这里结果应该都为2
        Assert.assertEquals(2, obj1.getTEST_NUM());
        Assert.assertEquals(2, obj2.getTEST_NUM());

        // 但是同一单例获取的id不同
        System.out.println(IdGenerate.getInstance().getId());
        System.out.println(IdGenerate.getInstance().getId());
    }
}
